//
//  程序启动优化.h
//  面试题
//
//  Created by Toj on 8/19/21.
//

启动慢有如下几点原因:

动态库加载越多，启动越慢。
ObjC类越多，启动越慢
C的__attribute__((constructor))函数越多，启动越慢
C++静态对象越多，启动越慢
ObjC的+load越多，启动越慢

**
应该在400ms内完成main()函数之前的加载
整体过程耗时不能超过20秒，否则系统会kill掉进程，App启动失败

1. 移除不需要用到的动态库
2. 移除不需要用到的类
3. 合并功能类似的类和扩展(Category)
4. 压缩资源图片
5. 优化applicationWillFinishLaunching加载
大量的操作可以放到子线程中去做
6. 优化rootViewController加载, 首页越简单越好, UI的层级关系简单化
